import Vue from "vue";
import Cookies from "js-cookie";
import "normalize.css/normalize.css"; // A modern alternative to CSS resets
import Element from "element-ui";
import "element-ui/lib/theme-chalk/index.css";
import "@/styles/element-variables.scss";
import "@/styles/index.scss"; // global css
import "@/styles/dts.scss";
import App from "./App";
import router from "./router";
import store from "./store";
import i18n from "./lang"; // Internationalization
import "./icons"; // icon
import "./permission"; // permission control
import * as filters from "./filters"; // global filters
import permission from "@/directive/permission/index.js"; // 权限判断指令
import { setBrandIsImproved } from "@/utils/auth";
// 打印插件
import Print from "vue-print-nb";

// window.addEventListener(
//   "message",
//   function (event) {
//     if (event.origin !== process.env.VUE_APP_CASHIER_WEB_ORIGIN) {
//       // 验证来源
//       return;
//     }
//     if (event.data.token) {
//       store.dispatch("LoginByToken", event.data.token);
//       setBrandIsImproved(true);
//     }
//     console.log("Received message from parent:", event);
//   },
//   false
// );

Vue.use(Element, {
  size: Cookies.get("size") || "medium", // set element-ui default size
  i18n: (key, value) => i18n.t(key, value),
});

Vue.use(Print);

Vue.directive("permission", permission);

// register global utility filters.
Object.keys(filters).forEach((key) => {
  Vue.filter(key, filters[key]);
});

Vue.config.productionTip = false;

new Vue({
  el: "#app",
  router,
  store,
  i18n,
  render: (h) => h(App),
});
